import os
import pandas as pd

def split_excel_file():
    # 配置参数
    input_dir = "/Users/ziruizhao/Downloads"  # 输入文件目录
    file_name = "test1.xlsx"  # 输入文件名
    max_rows = 20  # 每个拆分文件的最大行数，可根据需要调整
    
    # 构建完整路径
    file_path = os.path.join(input_dir, file_name)
    
    # 创建输出目录（这里使用同一目录）
    output_dir = input_dir
    os.makedirs(output_dir, exist_ok=True)
    
    # 获取文件名和扩展名
    base_name, ext = os.path.splitext(file_name)
    
    try:
        # 读取Excel文件
        print(f"正在读取文件: {file_path}")
        df = pd.read_excel(file_path)
        total_rows = len(df)
        print(f"文件读取完成，共 {total_rows} 行数据")
        
        # 计算需要拆分的数量
        num_parts = (total_rows + max_rows - 1) // max_rows
        print(f"将拆分为 {num_parts} 个文件")
        
        # 拆分并保存
        for i in range(num_parts):
            start_row = i * max_rows
            end_row = min((i + 1) * max_rows, total_rows)
            chunk = df.iloc[start_row:end_row].copy()
            
            # 构建输出文件名
            output_file = os.path.join(output_dir, f"{base_name}_{i + 1}{ext}")
            
            # 保存拆分后的文件
            chunk.to_excel(output_file, index=False)
            print(f"已生成: {output_file}，包含 {len(chunk)} 行数据")
            
    except Exception as e:
        print(f"处理文件时出错: {e}")

if __name__ == "__main__":
    split_excel_file()
